package com.gupao.prototype.simple;

public class CloneTest {

    public static void main(String[] args) {
        ConcretePrototype cp = new ConcretePrototype();
        cp.setAge(18);
        cp.setName("yangmei");
//        ArrayList<String> list = new ArrayList<>();
//        list.add("HELLO");
//        cp.setList(list);
        cp.list.add("yangmei");
        try {
            ConcretePrototype copy = (ConcretePrototype) cp.clone();
            System.out.println(copy.getAge() +","+ copy.getName() + ","+copy.list.size()); //浅拷贝
            System.out.println(cp.list == copy.list); //浅拷贝
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }

        /**
         *  有一个现成的对象，这个对象中已经设置好的值
         *  新建对象，要跟之前的一模一样
         *
         * set值
         * 可以用反射，用循环，确实可以（反射性能不高）
         * 字节码复制，这种原型法最快
         *
         * 能够直接拷贝实际内容的数据类型，9种
         */

    }
}
